Program Equivalence with Names
نویسنده
چکیده
The nu-calculus of Pitts and Stark was introduced as a paradigmatic functional language with a very basic local-state effect: references of unit type. These were called names, and the motto of the new language went as follows. “Names are created with local scope, can be tested for equality, and are passed around via function application, but that is all.” Because of this limited framework, the hope was that fully abstract models and complete proof techniques could be obtained. However, it was soon realised that the behaviour of nu-calculus programs is quite intricate, and program equivalence in particular is surprisingly difficult to capture. Here we focus on the following “hard” equivalence, new x, y in λf.(fx = fy) ≡ λf. true where x, y are names, and f : Name → Bool. We examine attempts and proofs of the above, explain the advantages and disadvantages of the proof methods and discuss why program equivalence in this simple language remains to date a mystery.
منابع مشابه
Structural recursion with locally scoped names
This paper introduces a new recursion principle for inductively defined data modulo α-equivalence of bound names that makes use of Odersky-style local names when recursing over bound names. It is formulated in simply typed λ-calculus extended with names that can be restricted to a lexical scope, tested for equality, explicitly swapped and abstracted. The new recursion principle is motivated by ...
متن کاملContextual equivalence for inductive definitions with binders in higher order typed functional programming
Correct handling of names and binders is an important issue in meta-programming. This paper presents an embedding of constraint logic programming into the αML functional programming language, which provides a provably correct means of implementing proof search computations over inductive definitions involving names and binders modulo α-equivalence. We show that the execution of proof search in ...
متن کاملRepresenting names with variables in nominal abstract syntax
We describe a new approach to nominal abstract syntax where object-language names are represented using variables in the meta-language, as opposed to concrete atoms. As well as providing additional flexibility through the ability to perform aliasing between bound and free names, this approach more closely models informal practice in the specification of inductively-defined relations. We present...
متن کاملA study of substitution, using nominal techniques and Fraenkel-Mostowksi sets
Fraenkel-Mostowski (FM) set theory delivers a model of names and alpha-equivalence. This model, now generally called the ‘nominal’ model, delivers inductive datatypes of syntax with alpha-equivalence — rather than inductive datatypes of syntax, quotiented by alpha-equivalence. The treatment of names and alpha-equivalence extends to the entire sets universe. This has proven useful for developing...
متن کاملNames, Equations, Relations: Practical Ways to Reason about new
The nu-calculus of Pitts and Stark is a typed lambda-calculus, extended with state in the form of dynamically-generated names. These names can be created locally, passed around, and compared with one another. Through the interaction between names and functions, the language can capture notions of scope, visibility and sharing. Originally motivated by the study of references in Standard ML, the ...
متن کامل